package foodmaterial.service;

import foodmaterial.action.FoodMaterialAction;
import foodmaterial.dto.*;
import foodmaterial.entity.*;

import java.util.Date;
import java.util.List;
import java.util.Map;

public interface FoodMaterialService {

    static final String FOOD_MATERIAL_TYPE_CACHE = "foodMaterialType";

    String addFoodMaterialType(FoodMaterialType foodMaterialType) ;

    String modifyFoodMaterialType(FoodMaterialType foodMaterialType) ;

    List<FoodMaterialType> queryFoodMaterialType(FoodMaterialTypeDto dto) ;

    public List<FoodMaterialType> queryFoodMaterialType(String db);

    String addFoodMaterialUnit(FoodMaterialUnit foodMaterialUnit) ;

    String modifyFoodMaterialUnit(FoodMaterialUnit foodMaterialUnit) ;

    List<FoodMaterialUnit> queryFoodMaterialUnit(FoodMaterialUnit foodMaterialUnit) ;

    String addFoodMaterial(FoodMaterial foodMaterial) ;

    String modifyFoodMaterial(FoodMaterial foodMaterial) ;

    int stopFoodMaterial(Map<String,Object> params) ;

    String batchModifyFoodMaterialPrice(List<FoodMaterial> foodMaterials) ;

    List<FoodMaterial> queryFoodMaterial(FoodMaterialDto dto) ;

    List<FoodMaterial> querySupplyFoodMaterial(FoodMaterialDto dto) ;//获取供应食材

    List<FoodMaterial> queryVipFoodMaterial(FoodMaterialDto dto) ;

    List<FoodMaterial> queryVipSupplyFoodMaterial(FoodMaterialDto dto) ;

    String addFoodMaterialSupply(FoodMaterialAction.Supply supply) ;

    String removeFoodMaterialSupply(FoodMaterialSupplyDto dto) ;

    List<FoodMaterialSupply> queryFoodMaterialSupply(FoodMaterialSupplyDto dto) ;

    int addCustomerPriceTemplate(CustomerPriceTemplate customerPriceTemplate) ;

    int modifyCustomerPriceTemplate(CustomerPriceTemplate customerPriceTemplate) ;

    int removeCustomerPriceTemplate(Long templateId) ;

    List<CustomerPriceTemplate> queryCustomerPriceTemplate(CustomerPriceTemplate template) ;

    List<CustomerPriceTemplateDetail> queryCustomerPriceTemplateDetail(CustomerPriceTemplateDetailDto dto) ;

    List<CustomerPriceTemplateDetail> queryCustomerPriceDetail(CustomerPriceDto dto) ;

    int addCustomerPrice(FoodMaterialAction.CustomerPriceChoice customerPrice) ;

    int removeCustomerPrice(CustomerPriceDto dto) ;

    List<CustomerPrice> queryCustomerPrice(CustomerPriceDto dto) ;

    String clearFoodMaterial() ;

    int addTestReport(TestReport testReport) ;
    int modifyTestReport(TestReport testReport) ;
    int removeTestReport(Long id) ;
    List<TestReport> queryTestReport(TestReportDto dto) ;
    TestReport queryTestReportById(Long id) ;

}
